import Setting from '@/utils/setting';  // 加载API，共通常量

/**
 * 共通的跳转-函数
 * @param {String} url: 跳转的路由地址
 * @param {Object} data: 参数对象，默认属性{ id: '100010', name: '名称' }
 * @param {String} type: 路由跳转的函数-类型，1：uni.navigateTo；2、uni.redirectTo；3、uni.reLaunch；4、 uni.switchTab；5、uni.navigateBack；6、uni.preloadPage
 */
const uNavRouteTo = (url, data, type = '1') => {
	if(type == '1') {
		if(data && data.id) {
			url += "?id="+data.id;
		}
		uni.navigateTo({
			url: url,
			success: res => {},
			fail: () => {
				uni.showToast({
					title: '跳转失败，正在维护中，请联系管理员！',
					icon: 'none'
				});
			},
			complete: () => {}
		});
	}
	// 调转代Tabbar的页面路由
	if(type == '2') {
		// 调转到首页
		uni.switchTab({
			url: url,
			success: res => {},
			fail: () => {
				uni.showToast({
					title: '跳转TabBar失败，正在维护中，请联系管理员！',
					icon: 'none'
				});
			},
			complete: () => {}
		})
	}
}

/**
 *  因工具函数属于公司资产, 所以直接在Vue实例挂载几个常用的函数
 *  所有测试用数据均存放于根目录json.js
 *  css部分使用了App.vue下的全局样式和iconfont图标，有需要图标库的可以留言。
 *  示例使用了uni.scss下的变量, 除变量外已尽量移除特有语法,可直接替换为其他预处理器使用
 */
const msgToast = (title, duration=1500, mask=false, icon='none')=>{
	//统一提示方便全局修改
	if(Boolean(title) === false){
		return;
	}
	uni.showToast({
		title,
		duration,
		mask,
		icon
	});
}
/** 
 * 
	测试使用
 */
const jsonTest = type => {
	//模拟异步请求数据
	return new Promise(resolve=>{
		setTimeout(()=>{
			resolve(Json[type]);
		}, 500)
	})
}

/**
 * 获取当前页面的对象
 */
const prePage = ()=>{
	let pages = getCurrentPages();
	let prePage = pages[pages.length - 2];
	// #ifdef H5
	return prePage;
	// #endif
	return prePage.$vm;
}

/**
 * 分页初始化-参数事件
 */
const pageInit = (obj, pageIndex, pageSize) => {
	let initData = {
		pageIndex: Setting.constant.PAGEINDEX,   // 分页页码
		pageSize: Setting.constant.PAGESIZE   	 // 每页记录数
	};
	if(pageIndex) {
		initData.pageIndex = pageIndex;
	}
	if(pageSize) {
		initData.pageSize = pageSize;
	}
	if(obj) {
		initData = {...initData, ...obj};
	}
	return initData;
}

/**
 * 手机号码-正则表达式
 */
const regularPhone = /(^1[3|4|5|6|7|8|9][0-9]{9}$)/;

/**
 * 获取url的参数-函数
 */
const getParams = () => {
	let URL = window.location.href;
	let url = URL.split("?")[1];
	const urlSearchParams = new URLSearchParams(url);
	const params = Object.fromEntries(urlSearchParams.entries());
	return params;
};
			
// 对外导出
export default {
	uNavRouteTo,
	msgToast,
	jsonTest,
	prePage,
	pageInit,
	regularPhone,
	getParams
}